/**
 * 此文件作为 Generator 的核心入口，需要导出一个继承自 Yeoman Generator 的类型
 * Yeoman Generator 在工作时会自动调用我们在此类型中定义的一些生命周期方法，
 * 我们在这些方法中可以通过调用父类提供的一些工具方法，实现一些功能，如文件写入
 */

// 载入 yeoman-generator
const Generator = require('yeoman-generator')

// 导出一个继承自 Yeoman Generator 的类型
module.exports = class extends Generator {
  // 在 yeoman 生成文件时，会自动调用这个 writing 方法
  writing() {
    /**
     * 通过文件读写的方式往生成的目录下读写文件，通过父类 fs 的模块，写入文件到生成目录
     * 这里的fs模块不同于 node 的fs 模块，这个是高度封装的，比原生的强大
     * 参数1：写入文件的路径，参数2：写入文件的内容
     */
    this.fs.write(
      this.destinationPath('temp.txt'), // 使用父类的 destinationPath 自动获取生成项目目录下对应的文件路径
      Math.random().toString() // 文件内容这里随意填写
    )
  }
}